//
//  Date+Extension.swift
//  ZLWeibo
//
//  Created by zhanglongtao on 17/1/18.
//  Copyright © 2017年 hanju001. All rights reserved.
//

import Foundation

//日期格式化器 不要频繁的释放和创建，会影响性能
private let dateFormatter = DateFormatter()
//当前日历对象
private let calender = Calendar.current

extension Date {
    
    //计算当前系统的时间盘查delta 秒数的日期字符串
    //在swift中 如果定义结构体的 类函数使用static 修饰 静态函数
    static func zl_dateString(delta: TimeInterval) -> String {
        let date = Date(timeIntervalSinceNow: delta)
        
        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        
        return dateFormatter.string(from: date)
        
    }
    static func zl_sinaDate(string: String) -> Date? {
        
        //设置日期格式
        dateFormatter.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
        
        //转换并且返回日期
        
        return dateFormatter.date(from: string)
        
    }
    
    /**
     一分钟
     一小时
     当天
     昨天
     一年内
     更早期
     */
    var zl_dateDescription: String?{
        
        //判断日期是否是今天
        if calender.isDateInToday(self) {
            
            let dalta = -Int(self.timeIntervalSinceNow)
            if dalta < 60{
                return "刚刚"
            }
            if dalta < 3600{
                
                return "\(dalta / 60)分钟前"
            }
            return "\(dalta / 3600)小时前"
        }
        //其他天
        var fmt = " HH:mm"
        if calender.isDateInYesterday(self){
            fmt = "昨天" + fmt
            
        }else
        {
            fmt = "MM-dd" + fmt
            let year = calender.component(.year, from: self)
            let thisYear = calender.component(.year, from: Date())
            if year != thisYear{
                fmt = "yyyy-" + fmt
            }
        }
        
        dateFormatter.dateFormat = fmt
        
        return dateFormatter.string(from: self)
    }
}
